科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件XSLT 2.0应用实践

XSLT 2.0应用实践

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

现在,XSLT 2.0已经不再只是一个理论上的标准了,有很多免费软件都可以帮助您发挥出XSLT 2.0的力量,借助这些软件您可以在软件开发中应用XSLT 2.0。这篇文章将向您介绍如何使用这些软件来应用XSLT2.0。

作者:builder.com.cn 2007年4月30日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

列表A——XML文档

<?xml version="1.0" encoding="UTF-8"?>

<world>

<country name="Canada" continent="North America">

<city>Toronto</city>

<city>Vancouver</city>

</country>

<country name="Jamaica" continent="North America">

<city>Kingston</city>

<city>Ocho Rios</city>

</country>

<country name="United States" continent="North America">

<city>Allentown</city>

<city>Mobile</city>

</country>

<country name="United Kingdom" continent="Europe">

<city>London</city>

<city>Dundee</city>

</country>

<country name="France" continent="Europe">

<city>Paris</city>

<city>Nice</city>

</country>

<country name="Japan" continent="Asia">

<city>Tokyo</city>

<city>Osaka</city>

</country>

</world>

列表B——XSLT2.0样式表

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="2.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"xmlns:fo="

http://www.w3.org/1999/XSL/Format"xmlns:xs="http://www.w3.org/2001/XMLSchema"xmlns:fn="

http://www.w3.org/2005/xpath-functions"xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">

<xsl:template match="/">

<xsl:element name="world">

<xsl:for-each-group select="//country" group-by="@continent">

<xsl:sort select="@continent" data-type="text" order="ascending"/>

<xsl:variable name="continent" select="@continent"/>

<xsl:apply-templates select="//country[@continent = $continent]" mode="group">

<xsl:sort select="@name" data-type="text" order="ascending"/>

</xsl:apply-templates>

</xsl:for-each-group>

</xsl:element>

</xsl:template>

<xsl:template match="*" mode="group">

<xsl:copy-of select="."/>

</xsl:template>

</xsl:stylesheet>

列表C——C#程序

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace WindowsApplication1

{

publicpartialclassForm1 : Form

{

public Form1()

{

InitializeComponent();

}

privatevoid Form1_Load(object sender, EventArgs e)

{

AltovaXMLLib.ApplicationClass objAltova = new AltovaXMLLib.ApplicationClass();

textBox1.Text = Application.StartupPath + "\\..\\..\\world2.xml";

textBox2.Text = Application.StartupPath + "\\..\\..\\grouping2.xsl";

objAltova.XSLT2.InputXMLFileName = textBox1.Text;

objAltova.XSLT2.XSLFileName = textBox2.Text;

textBox3.Text = objAltova.XSLT2.ExecuteAndGetResultAsString();

}

}

}

示例

在以上的代码中,我突出强调了这篇文章的主题——使用AltovaXML 2007XSLT2.0功能。表A展示了应用到XSLT2.0的方法,表B展示了适用的属性。

A——方法

方法

说明

Execute

对当前XML文档应用XSL样式表,并将结果写入程序提供的文件。

AddExternalParameter

XSL样式表上添加一个参数值。

ClearExternalParameterList

清除所有XSL样式表参数。

ExecuteAndGetResultAsString

对当前XML文档应用XSL样式表,并返回结果字符串。

B——属性

方法

说明

InputXMLFileName

设定需要转换的XML文件名。

InputXMLFromText

从字符串获取需要转换的XML文件名。

LastErrorMessage

最后的错误信息字符串。

XSLFileName

设定XSLT样式表的文件名。

XSLFromText

从字符串获取样式表的文件名。

XSLStackSize

样式表中允许的最大递归深度,默认是是1000,最小值是100.

结果

应用以上所有的技术,我们得到的结果看上去应当和图片D差不多。

图片D——结果

XSLT 2.0应用实践

下一步如何开展

这个例子已经显示出XSLT2.0已经具备实际应用的价值了,尽管这个例子本身平淡无奇,但是通过免费资源,我们已经可以很好地利用XSLT2.0的强大功能了。

但是在真正的商业环境中,您可能需要购买一些相关的参考资料,Michael KayXSLT 2.0 Programmer's ReferenceXSLT2.0程序员参考指南)是一个不错的选择;另外,您可能还要花些钱在XMLSpy的完整版本上,不过放心,在真正的应用软件上,XMLSpy所发挥出的功能是值得您进行投资的。

责任编辑:德东

查看本文国际来源

    • 评论
    • 分享微博
    • 分享邮件
    闂傚倸鍊风欢锟犲矗鎼淬劌绐楅柡鍥╁亹閺嬪酣鏌曡箛瀣仾濠殿垰銈搁弻鏇$疀鐎n亖鍋撻弽顓ㄧ稏闁跨噦鎷�

    婵犵數濮烽。浠嬪焵椤掆偓閸熷潡鍩€椤掆偓缂嶅﹪骞冨Ο璇茬窞闁归偊鍓涢悾娲⒑闂堟单鍫ュ疾濠婂嫭鍙忔繝濠傜墛閸嬨劍銇勯弽銊с€掗柟钘夊暣閺岀喖鎮滈埡鍌涚彋閻庤娲樺畝绋跨暦閸洖鐓涢柛灞剧矋濞堟悂姊绘担绛嬪殐闁搞劋鍗冲畷銏ゅ冀椤愩儱小闂佹寧绋戠€氼參宕伴崱妯镐簻闁靛牆鎳庢慨顒€鈹戦埥鍡椾簼婵犮垺锚铻炴俊銈呮噺閸嬪倹绻涢崱妯诲碍閻庢艾顦甸弻宥堫檨闁告挾鍠庨锝夘敆娓氬﹦鐭楁繛鎾村焹閸嬫捇鏌e☉娆愬磳闁哄本绋戦埞鎴﹀川椤曞懏鈻婄紓鍌欑劍椤ㄥ懘鎯岄崒鐐靛祦閹兼番鍔岄悞鍨亜閹烘垵顏╅悗姘槹閵囧嫰寮介妸褎鍣ョ紓浣筋嚙濡繈寮婚悢纰辨晣鐟滃秹鎮橀懠顒傜<閺夊牄鍔庣粻鐐烘煛鐏炶姤鍠橀柡浣瑰姍瀹曠喖顢橀悩铏钒闂備浇宕垫慨鎶芥⒔瀹ュ鍨傞柦妯猴級閿濆绀嬫い鏍ㄧ☉濞堟粓姊虹涵鍛【妞ゎ偅娲熼崺鈧い鎺嗗亾闁挎洩濡囧Σ鎰板籍閸繄顓洪梺缁樺姇瀵剙螖閸涱喚鍘搁梺鍓插亽閸嬪嫰鎮橀敃鍌涚厱閻庯綆鍋嗘晶顒傜磼閸屾稑绗ч柟鐟板閹煎湱鎲撮崟闈涙櫏闂傚倷绀侀幖顐も偓姘卞厴瀹曞綊鏌嗗鍛紱閻庡箍鍎遍ˇ浼村磿瀹ュ鐓曢柡鍥ュ妼婢ь垰霉閻樿秮顏堟箒闂佹寧绻傚Λ妤呭煝閺囥垺鐓冪憸婊堝礈濮樿泛钃熼柕濞у嫷鍋ㄩ梺缁樺姇椤曨參鍩㈤弴銏″€甸柨婵嗗€瑰▍鍥ㄣ亜韫囨稐鎲鹃柡灞炬礋瀹曢亶顢橀悢濂変紦

    重磅专题
    往期文章
    最新文章